The Inter-Integrated Circuit serial bus, which may also be referred to as the I2C bus or the PC bus, is a serial single-ended computer bus that was intended for use in connecting peripherals to a processor. The I2C bus is a multi-master bus in which each device can serve as a master and a slave for different messages transmitted on the I2C bus. The I2C bus can transmit data using only two bidirectional open-drain connectors, including a Serial Data Line (SDA) and a Serial Clock Line (SCL). The connectors typically include signal wires that are terminated by pull-up resistors.
Protocols governing I2C bus operations define basic types of messages, each of which begins with a START and ends with a STOP. The I2C bus uses 7-bit addressing and defines two types of nodes. A master node is a node that generates the clock and initiates communication with slave nodes. A slave node is a node that receives the clock and responds when addressed by the master. The I2C bus is a multi-master bus, which means any number of master nodes can be present. Additionally, master and slave roles may be changed between messages (i.e., after a STOP is sent).
In the context of a camera implementation, unidirectional transmissions may be used to capture an image from a sensor and transmit image data to memory in a baseband processor, while control data may be exchanged between the baseband processor and the sensor as well as other peripheral devices. In one example, a Camera Control Interface (CCI) protocol may be used for such control data between the baseband processor and the image sensor (and/or one or more slave nodes). In one example, the CCI protocol may be implemented over an I2C serial bus between the image sensor and the baseband processor.
Interrupts may be used by slave devices to request attention from a bus master. Interrupt capabilities on conventional serial bus interfaces generally have limited capabilities particularly when slave devices of varying capabilities are supported. Improved serial bus interrupt capabilities are needed as the sophistication of systems increases.